
 1000  * S.SCREEN TRICKS //E 80-COLUMN
 1010  *--------------------------------
 1020  *   FAST SCREEN CLEAR SUBROUTINE
 1030  *--------------------------------
 1040  GCLEAR LDA #255
 1050         .HS 2C       SKIP OVER NEXT TWO BYTES
 1060  CLEAR  LDA #$A0
 1070  SET    LDY #119
 1080  .1     LDX #1
 1090  .2     STA $C054,X
 1100         STA $400,Y   LINES:  0  8 16
 1110         STA $500,Y           2 10 18
 1120         STA $600,Y           4 12 20
 1130         STA $700,Y           6 14 22
 1140         STA $480,Y           1  9 17
 1150         STA $580,Y           3 11 19
 1160         STA $680,Y           5 13 21
 1170         STA $780,Y           7 15 23
 1180         DEX
 1190         BPL .2
 1200         DEY
 1210         BPL .1
 1220         RTS
 1230  *--------------------------------
 1240  *      SET SCREEN TO ALL VALUES
 1250  *--------------------------------
 1260  SETALL LDA #0
 1270  .1     PHA
 1280         JSR SET
 1290         PLA
 1300         CLC
 1310         ADC #1
 1320         BNE .1
 1330         RTS
 1340  *--------------------------------
 1350  *   ALTERNATE SCREEN UNTIL KEY PRESSED
 1360  *--------------------------------
 1370  ALTER  LDA #$20     INVERSE BLANK
 1380         JSR SET
 1390         JSR CLEAR
 1400         LDA $C000
 1410         BPL ALTER
 1420         STA $C010
 1430         RTS
 1440  *--------------------------------
 1450  *   FAST SCROLL UP SUBROUTINE
 1460  *--------------------------------
 1470  SCROLL LDY #0
 1480  .1     LDX #1
 1490  .3     LDA $C054,X
 1500         LDA $400,Y   SAVE LINES: 0 8 16
 1510         PHA
 1520         LDA $480,Y   MOVE 1>0, 9>8, 17>16
 1530         STA $400,Y
 1540         LDA $500,Y   MOVE 2>1, 10>9, 18>17
 1550         STA $480,Y
 1560         LDA $580,Y   MOVE 3>2, 11>10, 19>18
 1570         STA $500,Y
 1580         LDA $600,Y   MOVE 4>3, 12>11, 20>19
 1590         STA $580,Y
 1600         LDA $680,Y        ET CETERA
 1610         STA $600,Y
 1620         LDA $700,Y
 1630         STA $680,Y
 1640         LDA $780,Y
 1650         STA $700,Y
 1660         PLA          MOVE 8>7, 16>15
 1670         CPY #40
 1680         BCC .2       DISCARD OLD LINE 0
 1690         STA $780-40,Y
 1700  .2     DEX
 1710         BPL .3
 1720         INY
 1730         CPY #120
 1740         BCC .1
 1750         RTS
 1760  *--------------------------------
 1770  *   SCROLL AROUND, MOVING TOP LINE TO BOTTOM
 1780  *--------------------------------
 1790  SCR    LDY #39      SAVE TOP LINE ON STACK
 1800  .1     LDA $C054 
 1810         LDA $400,Y
 1820         PHA
 1830         LDA $C055
 1840         LDA $400,Y
 1850         PHA
 1860         DEY
 1870         BPL .1
 1880         JSR SCROLL   SCROLL SCREEN UP ONE LINE
 1890         LDY #0       STORE OLD TOP LINE
 1900  .2     LDA $C055
 1910         PLA             ON BOTTOM OF SCREEN
 1920         STA $7D0,Y
 1930         LDA $C054
 1940         PLA
 1950         STA $7D0,Y
 1960         INY
 1970         CPY #40
 1980         BCC .2
 1990         RTS
 2000  *--------------------------------
 2010  *   ROTATE SCREEN UNTIL KEY PRESSED
 2020  *--------------------------------
 2030  S      JSR SCR      SCROLL AROUND ONCE
 2040         LDA $C000    ANY KEY PRESSED?
 2050         BPL S        NO, SCROLL AGAIN
 2060         STA $C010    YES, CLEAR STROBE
 2070         RTS          ...AND RETURN

